package mastercard.assets.jpa;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the tbl_preimplementacion database table.
 * 
 */
@Entity
@Table(name="tbl_preimplementacion")
public class TblPreimplementacion implements Serializable {
	private static final long serialVersionUID = 1L;
	private int cvePreimplementacion;
	private byte bandera;
	private Timestamp fechaAlta;
	private byte status;
        private byte recotizado ;
	private TblFlujo tblFlujo;
	private List<TblAsset> tblAssets;
	private List<TblTareaPreimplementacion> tblTareaPreimplementacions;
        private List<TblPreimplementacionFlujoautRoles> tblPreimplementacionFlujoautRoles ;
	private TblCampania tblCampania;

    public TblPreimplementacion() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="cve_preimplementacion", unique=true, nullable=false)
	public int getCvePreimplementacion() {
		return this.cvePreimplementacion;
	}

	public void setCvePreimplementacion(int cvePreimplementacion) {
		this.cvePreimplementacion = cvePreimplementacion;
	}


	@Column(nullable=false)
	public byte getBandera() {
		return this.bandera;
	}

	public void setBandera(byte bandera) {
		this.bandera = bandera;
	}


	@Column(name="fecha_alta", nullable=false)
	public Timestamp getFechaAlta() {
		return this.fechaAlta;
	}

	public void setFechaAlta(Timestamp fechaAlta) {
		this.fechaAlta = fechaAlta;
	}


	@Column(nullable=false)
	public byte getStatus() {
		return this.status;
	}

	public void setStatus(byte status) {
		this.status = status;
	}
        
        @Column(name="recotizado")
	public byte getRecotizado() {
		return this.recotizado;
	}

	public void setRecotizado(byte recotizado) {
		this.recotizado = recotizado;
	}

	//bi-directional many-to-one association to TblFlujo
    @ManyToOne
	@JoinColumn(name="cve_flujo", nullable=false)
	public TblFlujo getTblFlujo() {
		return this.tblFlujo;
	}

	public void setTblFlujo(TblFlujo tblFlujo) {
		this.tblFlujo = tblFlujo;
	}
	

	//bi-directional many-to-many association to TblAsset
    @ManyToMany
	@JoinTable(
		name="tbl_preimplementacion_asset"
		, joinColumns={
			@JoinColumn(name="cve_preimplementacion", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="cve_asset", nullable=false)
			}
		)
	public List<TblAsset> getTblAssets() {
		return this.tblAssets;
	}

	public void setTblAssets(List<TblAsset> tblAssets) {
		this.tblAssets = tblAssets;
	}
	

	//bi-directional many-to-one association to TblPreimplementacionFlujoautRoles
	@OneToMany(mappedBy="tblPreimplementacion")
	public List<TblPreimplementacionFlujoautRoles> getTblPreimplementacionFlujoautRoles() {
		return this.tblPreimplementacionFlujoautRoles;
	}

	public void setTblPreimplementacionFlujoautRoles(List<TblPreimplementacionFlujoautRoles> tblPreimplementacionFlujoautRoles) {
		this.tblPreimplementacionFlujoautRoles = tblPreimplementacionFlujoautRoles;
	}
	
        //bi-directional many-to-one association to TblTareaPreimplementacion
	@OneToMany(mappedBy="tblPreimplementacion")
	public List<TblTareaPreimplementacion> getTblTareaPreimplementacions() {
		return this.tblTareaPreimplementacions;
	}

	public void setTblTareaPreimplementacions(List<TblTareaPreimplementacion> tblTareaPreimplementacions) {
		this.tblTareaPreimplementacions = tblTareaPreimplementacions;
	}

	//bi-directional many-to-one association to TblCampania
    @ManyToOne
	@JoinColumn(name="cve_campania")
	public TblCampania getTblCampania() {
		return this.tblCampania;
	}

	public void setTblCampania(TblCampania tblCampania) {
		this.tblCampania = tblCampania;
	}
	
}